package com.taotao.service.impl;

import java.io.IOException;

import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.taotao.common.FtpUtil;
import com.taotao.common.IDUtils;
import com.taotao.common.PictureResult;
import com.taotao.service.PictureService;
@Service
public class PictureServiceImpl implements PictureService{
	@Value("${FTP_ADDRESS}")
	private String FTP_ADDRESS;
	@Value("${FTP_PORT}")
	private Integer FTP_PORT;
	@Value("${FTP_USER_NAME}")
	private String FTP_USER_NAME;
	@Value("${FTP_PASSWORD}")
	private String FTP_PASSWORD;
	@Value("${FTP_BASE_PATH}")
	private String FTP_BASE_PATH;
	@Value("${IMAGE_BASE_URL}")
	private String IMAGE_BASE_URL;
	
	@Override
	public PictureResult uploadPicture(MultipartFile uploadFile) {
		if(uploadFile==null||uploadFile.isEmpty()){
			return PictureResult.error("上传图片为空!");
		}
		//取文件扩展名
		String originaFile=uploadFile.getOriginalFilename();
		String ext=originaFile.substring(originaFile.lastIndexOf("."));
		//生成新文件名
		//可以使用uuid生成新文件名。
		//UUID.randomUUID()
		//可以是时间+随机数生成文件名
		String filename=IDUtils.genImageName()+ext;
		//把图片上传到ftp服务器（图片服务器）
		//需要把ftp的参数配置到配置文件中
		//文件在服务器的存放路径，应该使用日期分隔的目录结构
		DateTime date=new DateTime();
		String filePath=date.toString("yy/MM/dd");
		try {
			FtpUtil.uploadFile(FTP_ADDRESS, FTP_PORT, FTP_USER_NAME, FTP_PASSWORD, FTP_BASE_PATH, filePath, filename, uploadFile.getInputStream());
		} catch (IOException e) {
			e.printStackTrace();
			return PictureResult.error("上传失败!");
		}
		return PictureResult.ok(IMAGE_BASE_URL+filePath+"/"+filename);
	}

}
